/*
** Pattern_assign_var.h
** 
** Made by Michael DuPont
** Login   <mdupont@mdupontdesktop2>
** 
** Started on  Thu Mar  5 19:48:25 2009 Michael DuPont
** Last update Thu Mar  5 19:48:25 2009 Michael DuPont
*/

#ifndef   	PATTERN_ASSIGN_VAR_H_
# define   	PATTERN_ASSIGN_VAR_H_

/*
 * Assignment is a "virtual" pattern. It deals with the LHS of the assignment,
 * but not with the RHS. Various other classes inherit from Assignment, and
 * deal with the different forms the RHS can take.
 */
class Pattern_assign_var : public Pattern
{
public:
  virtual MIR::Expr* rhs_pattern() = 0;
  virtual ~Pattern_assign_var();
  
 public:
  bool match(MIR::Statement* that);
 protected:
  MIR::Assign_var* agn;
  MIR::Wildcard<MIR::VARIABLE_NAME>* lhs;
};


#endif 	    /* !PATTERN_ASSIGN_VAR_H_ */
